<?php

require_once("dao/Dao.php");

/**
 * DAO de l'objet Carte Sim
 * 
 * @author Ludovic
 */
class CarteSimDao extends Dao{
	
	/**
	 * Retourne toutes les cartes disponnibles.
	 */
	public static function getCartesDisponnibles(){
		return parent::find("carte_sim",'hlrstatus="Available"');
	}
	
	/**
	 * Recherche une carte SIM à partir de son numéro.
	 * 
	 * @param String $numero_sim
	 */
	public static function findByNumeroSim($numero_sim){
		$cartes_sim =  parent::find("carte_sim",'transatelId="'.$numero_sim.'"');
		if (empty ($cartes_sim)) return null;
		return $cartes_sim[0];
	}
	
	/**
	 * Change le statut de la carte SIM.
	 * 
	 * @param unknown $numero_sim
	 * @param unknown $statut
	 * @return boolean
	 */
	public static function changerStatut($numero_sim,$statut){
		return parent::exec('UPDATE carte_sim SET hlrstatus="'.$statut.'" WHERE transatelId="'.$numero_sim.'"');
	}
	
	/**
	 * Change le statut de la carte SIM dans le detail client.
	 * 
	 */
	public static function changerSimDetailClient($numero_sim,$ndi){
		$res =  parent::find("carte_sim",'transatelId="'.$numero_sim.'"');
		$puk = $res[0]['puk'];
		return parent::exec('UPDATE detail_client SET num_sim="'.$numero_sim.'", code_puk="'.$puk.'" WHERE ndi="'.$ndi.'"');
	}
	
	/**
	 * Change le MSISDN associé à la carte SIM.
	 * 
	 * @param unknown $numero_sim
	 * @param unknown $msisdn
	 * @return boolean
	 */
	public static function changerMsisdn($numero_sim,$msisdn){
		return parent::exec('UPDATE carte_sim SET msisdn="'.$msisdn.'" WHERE transatelId="'.$numero_sim.'"');
	}
}
